引入 for 循环
在看完了 while 循环之后,我们发现,一个循环最重要的有三件事,循环次数、判断条件、循环后递增条件。比如我们在使用 while 循环的时候,就要实现定义一个计次变量,然后每次循环后累加这个变量,使得我们能够在满足条件时及时的跳出循环。而 for 循环则是将这一切变得更容易了!
fro 循环
我们先看一个例子,来对比一下 for 循环和 while 循环,同样是那个1~30累加的例子。
1 | //以下是 while 循环的写法 |
我们对比上面的两种写法,再对比循环的三个重要条件,就可以发现 for 循环
是 while 循环的简写
。
1、对比计次变量
while 循环:单独一行int i=1;
for 循环:直接写在 for 语句内,for(int i=1;i<=30;i++){...}
2、对比循环条件判断
while 循环:写在 while 循环语句内while (i<=30);
for 循环:写在 for 语句内,for(int i=1;i<=30;i++){...}
3、对比每次循环的变量增值
while 循环:写在 while 循环体内,单独一行i++;
for 循环:写在 for 语句内,for(int i=1;i<=30;i++){...}
综上,我们可以看到,for 循环在语句内直接把循环最终要的三个表达式都写好了,非常方便使用。
一般形式
for (表达式1 ; 表达式2 ; 表达式3 )语句
使用
表达式1:设置初始条件,只执行一次,可以为零个、一个或多个变量设置初始值。
例如我们可以把上面的例子改为
1 | for(int i=1,int result=0;i<=30;i++){ |
表达式2:是循环条件的表达式,用来判定是否继续执行循环体,先判断后执行
,这个和 do…while 不同!
表达式3:作为循环的调整,例如循环变量的增值啊等等,表达式3是在循环执行完之后
才进行。
运行过程是:
先执行表达式1,比如赋初始值等操作,然后计算表达式2的真假,如果是真,则执行循环体,如果为假则跳出循环体,执行循环体之后,表达式3执行,作为循环增量,进行一些变化。
for 和 while 的区别
简单来说,就是三个表达式的位置的区别。
while 循环:
表达式1
while(表达式2){
表达式3
}
for 循环:
for (表达式1 ; 表达式2 ; 表达式3 )
特殊
- 在 for 循环中,表达式1的内容可以省略,即可以没有初始值。
- 表达式2的内容也可以省略,即不设置和检查循环条件,始终执行下去。
- 表达式3也可以省略,即没有在循环结束时需要调整的循环增量。
注意
在 for 循环中,虽然这些表达式可以省略,但是分号不能省略,for 循环中的表达式是一个简单语句,需要用分号区别。
例子
输入字符串,然后回车,利用 for 循环,逐个返回。1
2
3
4
5
6
7
8
int main(){
char p;
for(;(p=getchar())!='\n';){
printf("%c",p);
}
return 0;
}
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。